我想要研究一下可否加入多項其他變數來預測未來價格。
在尋找資料時,意外發現有Pytrend這個API可導入。
什麼是 Pytrends?
Pytrends 是一個非官方的 Google Trends API,它提供不同的方法來下載 Google Trends 的熱門結果報告。這個 Python 套件可以幫助你自動化數據擷取過程,並在短時間內獲得結果。
#Setup and Import Required Libraries
import pandas as pd
from pytrends.request import TrendReq
pytrends = TrendReq(hl='en-US', tz=360)
#hl is the language, tz is for timezone
# build your list of keywords you want to search in Google Trends
#https://pypi.org/project/pytrends/
kw_list = ["Bitcoin", "BTC"] # list of keywords to get data
pytrends.build_payload(kw_list, cat=0, timeframe='now 7-d') #pull data from 7 days from today to now
我用了兩個關鍵字:Bitcoin 與 BTC。 我們看一下這兩個關鍵字在網路上的人氣。
看似“Bitcoin“的關鍵字比較多人用來搜尋。
pytrend還有一個有用的function:related_queries()。
這個套件非常強大,因為它可以顯示與提問中的關鍵詞「Bitcoin」相關的其他查詢。這可以幫助你更好地理解有關一個主題的趨勢。
我們把pytrend的指數與BTC-USD的Closing Price合成在一起,放在圖表中研究一下。
從yfinance抓的成交量跟收盤價(1wk at 1hour interval),可以看到有一些時間點,交易數量是零,不知道是否是數據有差錯。在交易量最高點處,似乎跟收盤價的最低/最高點有點關聯性。
在以上的圖,Bitcoin是從PyTrend取的數據,也是從Google Trend(Google趨勢)的Popularity Index(熱度指數) 下載的。
你可以看到Popularity Index起伏很平穩,跟收盤價的波動也不太相輔。
讓我們使用散點圖來驗證成交量(Volume)和收盤價(Close)之間是否存在因果關係。
你可以看以上散點圖顯示成交量和收盤價之間並無相關性。
我們也順便看看Bitcoin 熱度(Bitcoin)和收盤價(Close)之間是否存在因果關係。
遺憾的是,以上散點圖也顯示它們之間並無相關性。
這代表就算我把以上兩項變數加上,也不會讓我現有機器學習模型更准確。
在下一章,我們可以探索一下scikit-learn 。
Ref:
https://medium.com/@ben.g.ballard/using-google-trends-api-with-python-7ddbe0f7e18e#:~:text=First%2C%20install%20PyTrends%20and%20Connect,pytrends%20to%20initialize%20the%20connection.
https://hackernoon.com/how-to-use-google-trends-api-with-python
對 dbt 或 data 有興趣?歡迎加入 dbt community 到 #local-taipei 找我們,也有實體 Meetup 請到 dbt Taipei Meetup 報名參加
Ref:
https://levelup.gitconnected.com/20-pandas-functions-for-80-of-your-data-science-tasks-b610c8bfe63c